BLP: Applying ILP Techniques to Bytecode Execution
نویسندگان
چکیده
The popularity of Java has resulted in a flurry of engineering and research activity to improve performance of Java Virtual Machine (JVM) implementations. This paper explores the concept of bytecode-level parallelism (BLP): dataand controlindependent bytecodes that can be executed concurrently, just as conventional machine instructions are executed concurrently to exploit instruction-level parallelism (ILP). Quantifying the degree of BLP available is an important first step in finding ways to exploit it. This paper presents measurements for the SPECjvm98 suite that show levels of BLP are high even within basic blocks—with an average BLP degree of 5.6—and that levels of BLP are very large—19.8—when speculating past control flow. This suggests that techniques designed to exploit BLP can yield substantial speedups in the performance of a JVM and other
منابع مشابه
Parallelism of Java Bytecode Programs and a Java ILP Processor Architecture
The Java programming language has been widely used to develop dynamic content in Web pages. The Java Virtual Machine (JVM) executes Java bytecode. For efficient transmission over the Internet, the Java bytecode is a stack oriented architecture: instructions need not contain source and destination specifiers in their bytecodes. The Java bytecodes may be executed on various platforms by interpret...
متن کاملByCounter: Portable Runtime Counting of Bytecode Instructions and Method Invocations
For bytecode-based applications, runtime instruction counts can be used as a platform-independent application execution metric, and also can serve as the basis for bytecode-based performance prediction. However, different instruction types have different execution durations, so they must be counted separately, and method invocations should be identified and counted because of their substantial ...
متن کاملPlatform Independent Timing of Java Virtual Machine Bytecode Instructions
The accurate measurement of the execution time of Java bytecode is one factor that is important in order to estimate the total execution time of a Java application running on a Java Virtual Machine. In this paper we document the difficulties and solutions for the accurate timing of Java bytecode. We also identify trends across the execution times recorded for all imperative Java bytecodes. Thes...
متن کاملAutomatic Partitioning of Object-Oriented Programs with Multiple Distribution Objectives
There are many domains in which it would be very useful if we could take a monolithic program and automatically convert it into a distributed program according to some partitioning objective, such as minimizing total execution time or minimizing energy consumption on one particular distribution node. We present two novel techniques that work together to provide automatic multi-objective partiti...
متن کاملUsing Dynamic Analysis Of Java Bytecode For Evolutionary Object-Oriented Unit Testing
The focus of this paper is on presenting a methodology for generating and optimizing test data by employing evolutionary search techniques, with basis on the information provided by the analysis and interpretation of Java bytecode and on the dynamic execution of the instrumented test object. The main reason to work at the bytecode level is that even when the source code is unavailable, structur...
متن کامل